package ink.liaoxuefeng.javacore;

/**
 * @author wangzhuangzhuang
 * @DESC:
 * @date 2022-01-25 10:28
 */
public class StringBuilderDemo {
	public static void main(String[] args) {
		System.out.println(" ========================================= ");
		String info01 = "";
		for(int i = 0; i < 1000; i++){
			info01 = (info01 + "," + i);
		}
		System.out.println("info01: " + info01.substring(1)); // 0,1,2,3,4 ...... 996,997,998,999
		/**
		 * 此种方式拼接字符串，在循环中，每次循环都会创建新的字符串对象
		 * 然后扔掉旧的字符串，这样，绝大部分字符串都是临时对象，浪费内存影响GC效率。
		 * 为了能高效拼接字符串，Java标准库提供StringBuilder，它是一个可变对象
		 * 可以预分配缓冲区，往StringBuilder中新增字符时，不会创建临时对象
		 * */
		StringBuilder sb = new StringBuilder(1024);
		for(int i = 0; i < 1000; i++){
			sb.append(",");
			sb.append(i);
		}
		String info02 = sb.toString().substring(1);
		System.out.println("info02: " + info02);
		System.out.println(" ========================================= ");



	}
}